package cn.web.web_module.service.impl;

import cn.web.web_module.entity.RoleModule;
import cn.web.web_module.mapper.RoleModuleMapper;
import cn.web.web_module.service.RoleModuleService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * (RoleModule)表服务实现类
 *
 * @author 小松
 * @since 2020-06-19 08:55:40
 */
@Service("roleModuleService")
public class RoleModuleServiceImpl implements RoleModuleService {
    @Resource
    private RoleModuleMapper roleModuleMapper;

    /**
     * 通过ID查询单条数据
     *
     * @param roleModuleId 主键
     * @return 实例对象
     */
    @Override
    public RoleModule queryById(Integer roleModuleId) {
        return this.roleModuleMapper.queryById(roleModuleId);
    }

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    @Override
    public List<RoleModule> queryAllByLimit(int offset, int limit) {
        return this.roleModuleMapper.queryAllByLimit(offset, limit);
    }

    /**
     * 新增数据
     *
     * @param roleModule 实例对象
     * @return 实例对象
     */
    @Override
    public RoleModule insert(RoleModule roleModule) {
        this.roleModuleMapper.insert(roleModule);
        return roleModule;
    }

    /**
     * 修改数据
     *
     * @param roleModule 实例对象
     * @return 实例对象
     */
    @Override
    public RoleModule update(RoleModule roleModule) {
        this.roleModuleMapper.update(roleModule);
        return this.queryById(roleModule.getRoleModuleId());
    }

    /**
     * 通过主键删除数据
     *
     * @param roleModuleId 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer roleModuleId) {
        return this.roleModuleMapper.deleteById(roleModuleId) > 0;
    }

    /**
     * 通过角色Id获取权限Id
     * @param roleId 角色ID
     * @return 返回角色相应权限ID
     */
    public ArrayList<Integer> getModuleId(Integer roleId){
        ArrayList<Integer> moduleId = roleModuleMapper.getModuleId(roleId);
        return moduleId;
    }
}